a68401052a8a4d67e0e8956fe918fb77d876d57c,ownNoteEditor/src/tf/ownnote/ui/main/OwnNoteEditor.java,OwnNoteEditor,addNoteEditorControls,#,777

Before Change



            // add button to insert image
            graphic = 
                    new ImageView(new Image(OwnNoteEditor.class.getResourceAsStream("/tf/ownnote/ui/css/insertimage.gif"), 22, 22, true, true));
            final Button insertImage = new Button("", graphic);
            insertImage.getStyleClass().add("html-editor-insertimage");
            if (buttonStyles != null) {
                insertImage.getStyleClass().addAll(buttonStyles);
            }
            insertImage.setOnAction((ActionEvent arg0) -> {
                final List<String> extFilter = Arrays.asList("*.jpg", "*.png", "*.gif");
                final List<String> extValues = Arrays.asList("jpg", "png", "gif");

                final FileChooser fileChooser = new FileChooser();
                fileChooser.setTitle("Embed an image");
                fileChooser.getExtensionFilters().addAll(
                    new FileChooser.ExtensionFilter("Pictures", extFilter));
                final File selectedFile = fileChooser.showOpenDialog(null);

                if (selectedFile != null) {
                    if (extValues.contains(FilenameUtils.getExtension(selectedFile.getName()).toLowerCase())) {
                        try {
                            // we really have selected a picture - now add it
                            noteEditor.setHtmlText(
                                    noteEditor.getHtmlText() + "<img src='" + selectedFile.toURI().toURL().toExternalForm() +"'>");
                        } catch (MalformedURLException ex) {
                            Logger.getLogger(OwnNoteEditor.class.getName()).log(Level.SEVERE, null, ex);
                        }
                    }                        
                }
            });
            toolbar.getItems().add(insertImage);
            
            // add separator

After Change


            // add button to insert image - but only once
            if (toolbar.lookup(".html-editor-insertimage") == null) {
                final ImageView graphic =
                        new ImageView(new Image(OwnNoteEditor.class.getResourceAsStream("/tf/ownnote/ui/css/insertimage.gif"), 22, 22, true, true));
                final Button insertImage = new Button("", graphic);
                insertImage.getStyleClass().add("html-editor-insertimage");
                if (buttonStyles != null) {
                    insertImage.getStyleClass().addAll(buttonStyles);
                }

                insertImage.setOnAction((ActionEvent arg0) -> {
                    final List<String> extFilter = Arrays.asList("*.jpg", "*.png", "*.gif");
                    final List<String> extValues = Arrays.asList("jpg", "png", "gif");

                    final FileChooser fileChooser = new FileChooser();
                    fileChooser.setTitle("Embed an image");
                    fileChooser.getExtensionFilters().addAll(
                        new FileChooser.ExtensionFilter("Pictures", extFilter));
                    final File selectedFile = fileChooser.showOpenDialog(null);
                    
                    if (selectedFile != null) {
                        if (extValues.contains(FilenameUtils.getExtension(selectedFile.getName()).toLowerCase())) {
                            try {
                                // we really have selected a picture - now add it
                                noteEditor.setHtmlText(
                                        noteEditor.getHtmlText() + "<img src='" + selectedFile.toURI().toURL().toExternalForm() +"'>");
                            } catch (MalformedURLException ex) {
                                Logger.getLogger(OwnNoteEditor.class.getName()).log(Level.SEVERE, null, ex);
                            }
                        }                        
                    }
                });

                toolbar.getItems().add(insertImage);
            }